package com.tree.backend.service;

import com.tree.backend.entity.pojo.CostRecord;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.tree.backend.entity.dto.costRecord.*;
import com.tree.backend.entity.vo.costRecord.CostRecordVO;
import com.tree.backend.entity.vo.costRecord.CostAnalysisVO;
import java.util.List;

/**
 * <p>
 * 成本记录明细表 服务类
 * </p>
 */
public interface ICostRecordService extends IService<CostRecord> {

    /**
     * 获取成本记录列表
     */
    Page<CostRecordVO> getCostRecords(CostRecordQueryDTO queryDTO);

    /**
     * 获取成本记录详情
     */
    CostRecordVO getCostRecordById(Long id);

    /**
     * 新增成本记录
     */
    CostRecordVO addCostRecord(CostRecordCreateDTO createDTO);

    /**
     * 更新成本记录
     */
    CostRecordVO updateCostRecord(Long id, CostRecordUpdateDTO updateDTO);

    /**
     * 删除成本记录
     */
    boolean deleteCostRecord(Long id);

    /**
     * 更新成本记录状态
     */
    CostRecordVO updateCostRecordStatus(Long id, CostRecordStatusDTO statusDTO);

    /**
     * 审批成本记录
     */
    CostRecordVO approveCostRecord(Long id, CostRecordApproveDTO approveDTO, String username);

    /**
     * 获取成本分析数据
     */
    List<CostAnalysisVO> getCostAnalysis(CostAnalysisQueryDTO queryDTO);

    /**
     * 搜索成本记录
     */
    Page<CostRecordVO> searchCostRecords(CostRecordQueryDTO queryDTO);
}
